#include<iostream>
#include<cstdio>
#include<string>
using namespace std;
int n;
int b[1005];
int vis[1005];
int ans[1005];
int op[1005];
string ad[1005];
int solve(string s){
	if(s[0]>'9'||s[0]<'0'){
		return 0;
	}
	string a[10]={""};
	int cnt=1;
	int ans=0;
	for(int i=0;i<s.size();i++){
		if(s[i]<='9'&&s[i]>='0'){
			a[cnt]+=s[i];
		}else if(s[i]!=':'&&cnt==4){
			return 0;
		}else if(s[i]!='.'&&cnt<4){
			return 0;
		}else if(cnt>=5){
			return 0;
		}else{
			cnt++;
		}
	}
	if(cnt!=5){
		return 0;
	}
	for(int i=1;i<=4;i++){
		if(a[i][0]=='0'&&a[i].size()>1){
			return 0;
		}
		if(a[i].size()<=2){
			continue;
		}
		if(a[i][0]>='3'||a[i].size()>3){
			return 0;
		}else if(a[i][0]=='2'&&a[i][1]>'5'){
			return 0;
		}else if(a[i][0]=='2'&&a[i][1]=='5'&&a[i][2]>'5'){
			return 0;
		}
	}
	if(a[5].size()>5){
		return 0;
	}
	if(a[5][0]=='0'&&a[5].size()>1){
		return 0;
	}
	int k=0;
	for(int i=0;i<a[5].size();i++){
		k=k*10+(int)(a[5][i]-'0');
	}
	if(k>65535){
		//cout<<k;
		return 0;
	}
	return 1;
}
int main(){
	freopen("network.in","r",stdin);
	freopen("network.out","w",stdout);
//	string ss;
//	cin>>ss;
//	cout<<solve(ss); 
	cin>>n;
	for(int i=1;i<=n;i++){
		string s;
		cin>>s;
		if(s=="Server"){
			op[i]=1;
		}else{
			op[i]=0;
		}
		cin>>ad[i];
		b[i]=solve(ad[i]);
//		if(b[i]==0){
//			vis[i]=1;
//		}
	}
	for(int i=1;i<=n;i++){
		if(b[i]==0){
			ans[i]=-1;
			continue;
		}
		if(op[i]==0){
			for(int j=1;j<i;j++){
				if(op[j]==1&&b[i]==1&&ad[j]==ad[i]){
					ans[i]=j;
					ans[j]=-2;
					vis[i]=1;
					break;
				}
			}
		}
//		else{
//			for(int j=1;j<i;j++){
//				if(op[j]==1&&ad[j]==ad[i]){
//					vis[i]=1;
//					break;
//				}
//			}
//		}
	}
	for(int i=1;i<=n;i++){
		if(ans[i]==-1){
			cout<<"ERR"<<endl;
		}else if(ans[i]==-2){
			cout<<"OK"<<endl;
		}else if(ans[i]==0){
			cout<<"FAIL"<<endl;
		}else{
			cout<<ans[i]<<endl;
			
		}
	}
	return 0;
}
